package regular2MR;

import java.util.ArrayList;

class VertexD {
	String name;
	ArrayList<BoolFormula> label;
	ArrayList<EdgeD> neighbors;
	String stateName;
	boolean visit;

	public VertexD(String name, String stateName) {
		this.name = name;
		this.stateName = stateName;
		neighbors = new ArrayList<EdgeD>();
		this.visit = false;
	}

	public VertexD(String name, String stateName, ArrayList<BoolFormula> label) {
		this.name = name;
		this.label = label;
		this.stateName = stateName;
		neighbors = new ArrayList<EdgeD>();
		this.visit = false;
	}

	public ArrayList<BoolFormula> Ld() {
		return this.label;
	}

	@Override
	public boolean equals(Object obj) {
		boolean check = false;
		if (obj == null)
			return false;
		else if (obj == this)
			return true;
		else if (obj instanceof VertexD && obj.getClass() == this.getClass()) {
			final VertexD t = (VertexD) obj;
			check = this.name.equals(t.name);
		}
		return check;
	}

	@Override
	public int hashCode() {
		int hash = 7;
		hash = (37 * hash) + (null == this.name ? 0 : this.name.hashCode());
		return hash;
	}

}

class EdgeD {
	VertexD target;

	public EdgeD(VertexD target) {
		this.target = target;
	}
}